The present invention relates to computer networks and, more particularly, to configuration of devices in a computer network employing the Synchronous Data Link Control (SDLC) protocol.
Data communications in a computer network involves the exchange of data between two or more entities interconnected by communication links. These entities are typically software programs executing on hardware computer platforms which, depending on their roles within a network, may serve as end stations or intermediate stations. Examples of intermediate stations may include bridges, switches and routers that interconnect the communication links to enable transmission of data between the end stations, which may comprise a computer. More generally, an end station connotes a source of or target for data that typically does not provide routing or other services to other computers on the network.
Communication software executing on the end stations correlate and manage data communication with other end stations. The stations typically communicate by exchanging discrete packets or frames of data according to predefined protocols. In this context, a protocol represents a set of rules defining how the stations interact with each other to transfer data. In addition, network routing software executing on the routers allows expansion of communication to other end stations. Collectively, these hardware and software components comprise a communications network and their interconnections are defined by an underlying architecture.
Most computer network architectures are organized as a series of hardware and software levels or xe2x80x9clayersxe2x80x9d within each station. These layers interact to format data for transfer between, e.g., a source station and a destination station communicating over the network. Specifically, predetermined services are performed on that data as it passed through each layer, and the layers communicate with each other by means of the predefined protocols. This design permits each layer to offer selected services to other layers using a standardized interface that shields the other layers from details of actual implementation of the services. The lower layers of these architectures are generally standardized and implemented in hardware and firmware, whereas the higher layers are usually implemented in the form of software. Examples of such communications architectures include the Systems Network Architecture (SNA) developed by International Business Machines (IBM) Corporation and the Internet Communications Architecture.
The Internet architecture is represented by four layers termed, in ascending interfacing order, the network interface, internetwork, transport and application layers. The primary internetwork layer protocol of the Internet architecture is the Internet Protocol (IP). IP is primarily a connectionless protocol that provides for internetworking routing, fragmentation and reassembly of exchanged packetsxe2x80x94generally referred to as xe2x80x9cdatagramsxe2x80x9d in an Internet environmentxe2x80x94and which relies on transport protocols for end-to-end reliability. An example of such a transport protocol is the Transmission Control Protocol (TCP), which is implemented by the transport layer and provides connection-oriented services to the upper layer protocols of the Internet architecture. The term TCP/IP is commonly used to denote this architecture; the TCP/IP architecture is discussed in Computer Networks, 3rd edition, by Andrew S. Tanenbaurn, published by Prentice-Hall, PTR in 1996, all disclosures of which are incorporated herein by reference, particularly at pages 28-44.
SNA is a communications framework widely used to define network functions and establish standards for enabling different models of computers to exchange and process data. SNA is essentially a design philosophy that separates network communications into several layers termed, in ascending order, the physical, data link control, path control, the transmission control, the data flow control, the presentation services and the transaction services layers. These layers are arranged to form a protocol stack in each communicating station of the network. FIG. 1 is a schematic block diagram of a prior art SNA protocol stack 100, wherein each layer of the stack represents a graduated level of function moving upward from physical connections (physical layer 102) to application software (transaction services layer 114).
In the SNA architecture, the data link control layer 104 is responsible for providing error-free transmission of data over a communication link between stations. An example of a bit-oriented protocol for data link control of a communication channel is the synchronous data link control (SDLC) protocol. Reliable communication in the data link layer (e.g., SDLC) is well known and described by Andrew Tanenbaum in his book Computer Networks, Second Edition, published in 1988, all disclosures of which are incorporated herein by reference, especially at pages 253-257.
SDLC identifies two types of stations: primary and secondary. Only one station on a SDLC link is a primary station; all other stations on the link are secondary stations. The role of a primary station is to control the operation of the data link between the primary and secondary stations. For example, the primary station may initiate data transmissions from the secondary stations by polling the secondary stations in a predetermined order. Secondary stations can then transmit if they have outgoing data. The primary station also establishes and xe2x80x9ctears downxe2x80x9d communication links and channels. Examples of communication channels and link types supported by the SDLC protocol include point-to-point and multipoint links, half-duplex and full-duplex transmission facilities, and circuit-switched and packet-switched networks.
FIG. 2 is a schematic block diagram of a SNA computer network 200 having a hierarchical topology. The network 200 comprises a plurality of stations that are defined by the SNA architecture in terms of physical units (PUs) and that communicate in a master-slave relationship as defined by the SDLC protocol. Specifically, a host mainframe 202 (e.g., a PU of type 5.0) is coupled to a front end processor, FEP 210 (e.g., a PU of type 4.0). The FEP 210 is configured to communicate with external devices, such as cluster controllers (CC) 220, each of which provides a concentrated data link interface for a number of locally-attached end stations 230. The cluster controllers 220 and end stations 230 manifest as PU type 2.0 devices.
Applications executing on end stations 230 typically access the network through logical units (LU) of the stations; accordingly, in a typical SNA network, a communication session connects two LUs in a LUxe2x80x94LU session. Activation and deactivation of such a session is addressed by Advanced Peer to Peer Networking (APPN) functions, which include session establishment and session routing within an APPN network. During session establishment, an APPN end node requests an optimum route for a session between two LUs; this route is calculated and conveyed to the end node by an APPN network node. Intermediate session routing occurs when the APPN network node is present in a session between the two end nodes.
An APPN network node is a full-functioning APPN router node having all APPN base service capabilities, including session services functions. An APPN end node, on the other hand, is capable of performing only a subset of the functions provided by an APPN network node. In an APPN network, all nodes are of a PU 2.1 device type. APPN network and end nodes are well-known and are, for example, described in detail in Systems Network Architecture Advanced Peer to Peer Networking Architecture Reference IBM Doc SC30-3422 and APPN Networks by Jesper Nilausen, printed by John Wiley and Sons, 1994, at pgs 11-83.
According to the SDLC protocol, the master-slave relationship exists between each of the stations of the network and manifests as a hand-shaking sequence between the stations. For example, the host mainframe 202 is a master or primary with respect to a slave or secondary host interface (SHI) 212 of the FEP 210. Likewise, remote interface (PRI) 214 of the FEP is a primary with respect to a secondary interface (SRI) 224 of the cluster controllers 220 and a remote interface (PRI) 226 of the controllers is a primary with respect to secondary end stations 230. The hand-shaking sequence involves requests issued by the primary and responses returned by the secondaries utilizing SDLC frames.
FIG. 3 is a schematic block diagram illustrating the format of a SDLC frame 300. The frame 300 is bounded by flag fields 302, each of which contains a unique flag pattern, i.e., 01111110 (Hex 7E), that enables a receiving station to determine the beginning and end of the frame. An address field 304 contains the address of the secondary station communicating with the primary, while a frame check sequence (FCS) field 306 is used to check the received frame for errors introduced by the channel. The FCS field 306 generally contains a cyclic redundancy check (CRC) calculation remainder.
The frame 300 further includes a control field 310 whose contents identify the function of the frame. Specifically, the control field 310 contains either an SDLC command or response. All frames transmitted by a primary station are commands, while frames transmitted by a secondary station are responses. The control field 310 uses three different formats, depending upon the category of SDLC command and response frames utilized. These formats include an unnumbered frame (U-frame 312) format, a supervisory frame (S-frame 314) format and an information frame (I-frame 320) format.
U-frames 312 are used for control purposes, such as to initialize secondaries. That is, U-frames 312 may be issued by a primary to a secondary to bring up a logical link (i.e., inquire whether the secondary is prepared to communicate with the primary) and to xe2x80x9ctear downxe2x80x9d the link. U-frames may be further employed for data link management and, as such, provides the commands and responses for control of information exchanges. An example of a SDLC command issued by a primary is an exchange station identification command that solicits an exchange identification (XID) response containing either the station identification of a secondary station or link negotiation information that allows the alteration of the primary or secondary relationship. In addition, a common mode setting command issued by a primary station is a Set Normal Response Mode (SNRM) frame (or Set Normal Response Mode Extended, SNRME) used for link initialization procedures and a common response is an Unnumbered Acknowledge (UA) frame that acknowledges receipt of the SNRM frame.
Once the secondary is initialized, the primary issues I-frames 320 and S-frames 314, the latter providing control information. For example, S-frames 314 are used to request and suspend transmission, report status, and acknowledge the receipt of I-frames. SDLC is a windowed protocol in that a number of frames may be issued from the primary to the secondary to which the secondary responds with a sequence number indicating the last accurately received frame. Thus, the secondary can acknowledge receipt of a number of frames at one time. Examples of S-frames are Receiver Ready (RR) frames, Receiver Not Ready (RNR) frames and Reject (REJ) frames, the latter of which are used to reject a frame and request issuance of the frame again.
I-frames 320 carry upper layer information and some control information. For example, I-frames contain send and receive sequence numbers 322, 324, along with a poll final (P/F) bit 326 for performing flow and error control. The send sequence number 322 refers to the number of the frame to be sent next, whereas the receive sequence number 324 provides the number of the frame to be received next. Both the sender and the receiver maintain send and receive sequence numbers. The primary uses the P/F bit 326 to relinquish control of the data link to the secondary. The secondary uses this bit to inform the primary whether the current frame is the last in its current response.
An optional information field 350 contains control information or data. The interpretation of the control field 310 determines whether a field 350 is present in the frame 300. The information field is of variable length and may be expanded to accommodate as much information as necessary, as long as it is expanded in 8-bit increments. The field 350 accommodates both numbered and unnumbered information fields. The format of the SDLC frame, along with the format and meanings of the information field bytes of the XID frames, are well known and described in Systems Network Architecture Formats, IBM Doc GA27-3136-16, IBM Corporation, October 1996.
FIG. 4 is a schematic diagram of a network arrangement 400 illustrating the interaction between SDLC devices, such as FEP 402 and PU end station 404 (similar to FEP 210 and end station 230 of FIG. 2) when configuring their SDLC roles in a conventional SNA network. If the end station 404 is a PU 2.0 device, it assumes a secondary role with respect to the (primary) FEP 402. The roles of the stations are not an issue in this case because a PU 2.0 device is always a secondary device. The primary then initiates configuration by issuing a SNRM frame to xe2x80x9cbring-upxe2x80x9d the logical data link between the stations. The PU 2.0 end station affirmatively responds to the SNRM frame with a UA frame and, thereafter, a logical link connection is established for transporting data between the stations.
Assume now that that end station 404 is a PU 2.1 device. The end station may initiate negotiation of primary/secondary status between itself and the FEP by issuing a XID frame to which the FEP responds with a configured XID identifying itself. A plurality of XID frames are exchanged among the devices to, inter alia, determine the primary/secondary roles of the devices. Note that a PU 2.1 node is capable of being a primary node because it has APPN capabilities. Although a PU 2.1 device may not be a primary with respect to a FEP, it may be a primary with respect to another PU (APPN) device.
After the XID exchange has determined the roles of the devices, the primary (e.g., FEP 402) issues a SNRM frame to the secondary (end station 404) which responds with a UA frame. As noted, this sequence establishes a logical link between the two devices and enables data communication between the devices. It should be noted that this same sequence applies to PU 2.1 and PU 4.0 stations when negotiating their roles as primary/secondary devices. The negotiated role is manifested within the last exchanged XID frame.
Data link switching (DLSw) is a forwarding mechanism for the SNA architecture over an IP backbone network, such as the Internet. A heterogeneous DLSw network is formed when two DLSw routers interconnect the end nodes of the APPN network by way of the IP network; the DLSw routers preferably communicate using a switch-to-switch protocol (SSP) that provides packet xe2x80x9cbridgingxe2x80x9d operations at the SDLC protocol layer. The DLSw forwarding mechanism is also well-known and described in detail in Request for Comment (RFC) 1795 by Wells and Bartky, 1995 at pgs 1-91.
A router (such as a DLSw router) may be configured for primary/secondary role status with respect to a PU 2.1 and PU 4.0 device in accordance with a conventional process. According to the conventional approach, the router""s interface is initially configured as a primary but if it receives a SNRM frame from a PU device, it changes its status to a secondary role. However, if the station is PU 2.0 device, the router is manually configured for its role as a primary. That is, an interface of the router that attaches to the PU 2.0 station at the data link layer requires user interaction to statically configure its role in accordance with the SDLC protocol. When statically configuring a router interface, a configuration table at each interface includes an SDLC role entry which, via manual user data entry, is loaded with either a primary or secondary role status. Manual configuration is undesirable because of the likehood of errors occurring; this, in turn, generates customer service calls.
Therefore, it is desirable to provide a technique for automatically configuring router interfaces for primary/secondary status with respect to PU stations so as to obviate the need for user intervention.
The invention comprises a technique for automatically configuring the role of a router interface coupled to a synchronous data link control (SDLC) device of a computer network. The SDLC device is preferably a physical unit (PU) station and may comprise, for example, a front end processor (FEP) or end station. When the router is activated and attached to a PU station over a communication link, it waits a predetermined period time before issuing any frames. A PU 2.1 or PU 4.0 station promptly initiates an exchange identification (XID) frame exchange upon being activated. The XID exchange comprises a negotiation process to determine the primary/secondary roles of the end points, such as the FEP and end station.
If no XID frames are received during the predetermined period, the router issues a null XID to the PU station. The null XID frame forces the PU station to respond with a configured XID identifying the station. Specifically, the PU station responds with one of three types of configured XID frames: XID0, XID2 and XID3. An XID0 denotes a PU 2.0 device, an XID2 denotes a PU 4.0 device and an XID3 denotes a PU 2.1 device. According to the invention if the PU station returns an XID0 frame, the router automatically configures the role of its interface to primary because a PU 2.0 device can only assume the role of a secondary.
If the PU station returns an XID2 or XID3, the router waits for resolution of the XID exchange (i.e., the last XID frame exchanged) between the end points to reveal the role of its attached station. Information is contained within the last XID frame that indicates the role of that station. Once the attached station""s role is determined to be primary/secondary, the router may automatically configure its interface for secondary/primary status. If the router interface receives a Set Normal Response Mode frame, it configures itself as a secondary. The inventive technique described herein is unique in that the router essentially polls the PU stations to determine the role of its interface.